package com.ship.dispatch.model.Vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 货船排布Vo
 * @TableName sp_arrange
 */
@Data
public class SpArrangeVo implements Serializable {
    /**
     * 序号 
     */
    private Long id;

    /**
     * 船舶名字
     */
    private String nameOfVessel;

    /**
     * 方案编号
     */
    private String schemeNumber;

    /**
     * 航次号 
     */
    private String voyageNumber;

    /**
     * 货号 
     */
    private String goodsNumber;

    /**
     * 排布情况(国内、欧洲) 
     */
    private Integer layout;

    /**
     * 资源方(调度优化没有) 
     */
    private String resourceSide;

    /**
     * 预装载时间 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date preLoadingTime;

    /**
     * 预计装载完成时间 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date expectedLoadingCompletionTime;

    /**
     * 实际装载时间 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date actualLoadingTime;

    /**
     * 巴拿马运河提前预定时间 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date panamaCanalScheduledInAdvance;

    /**
     * 换港时间1 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date portChangeTime1;

    /**
     * 换港时间2 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date portChangeTime2;

    /**
     * 换船时间1 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date shipChangeTime1;

    /**
     * 换船时间2 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date shipChangeTime2;

    /**
     * 实际装载量(调度优化没有) 
     */
    private String actualLoadingCapacity;

    /**
     * 预计满载航程天数 
     */
    private String expectedFullLoadVoyageDays;

    /**
     * 预计卸载窗口 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date expectedUninstallationWindow;

    /**
     * 预计卸载完成窗口
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date expectedUninstallationCompletionWindow;

    /**
     * 预计空载航程天数 
     */
    private String expectedNumberOfEmptyFlightDays;

    /**
     * 预计空载返程时间 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date expectedNoLoadReturnTime;

    /**
     * 实际卸载日期(调度优化没有) 
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy年MM月dd")
    private Date actualUninstallationDate;

    /**
     * 实际卸载量(调度优化没有) 
     */
    private String actualUnloadingVolume;

    /**
     * 货船排布状态(调度优化没有) 
     */
    private String cargoShipLayoutStatus;

    /**
     * 备注(调度优化没有) 
     */
    private String remarks;

    /**
     * 运费预算（调度优化有）
     */
    private String freightBudget;

    /**
     * 贸易利润率预算（调度优化有）
     */
    private String tradeProfitMarginBudget;

    /**
     * 状态（0：未下发，1：待执行，2：执行中，3：已完成，4：已终止）
     */
    private Integer state;

    /**
     * 创建时间
     */
    private Date createdTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}